export interface IProps {
  global: any;
  buttonPermissions: any;
  contractManagement: any;
  menuCode: string;
  dispatch: any;
}

export interface IOptionType {
  label?: string;
  value?: string;
  id?: number;
  type?: string;
  children?: IOptionType[];
}

export interface IOrginDealElementOptions {
  id?: number;
  label?: string;
  value?: string;
  marketId: string;
  groupId: string;
  groupName: string;
  children?: IOrginDealElementOptions[] | null;
}

export interface INodeListType {
  nodeId?: string;
  nodeName?: string;
  provinceId?: number;
  provinceName?: string;
}

export interface IStationListType {
  stationId?: string;
  stationName?: string;
}

export interface INodeStationListType {
  nodeId?: string;
  nodeName?: string;
  nodeNameAlias?: string;
  provinceId?: string;
  provinceName?: string;
  rank?: number;
  stationList?: IStationListType[];
  stationIdList?: string[];
}
export interface IOrginDealElementOptions {
  id?: number;
  label?: string;
  value?: string;
  children?: IOrginDealElementOptions[] | null;
}
export interface IDealElementOptions {
  id?: number;
  key?: string;
  label?: string;
  parentKey?: number;
  regionId?: string;
  title: string;
  value?: string;
  children?: IDealElementOptions[];
}

export interface IStationsData {
  dealElementOptions: IDealElementOptions[];
  dealElementModalOptions: IDealElementOptions[];
  dealElementDataObj: IDealElementDataObj;
  originDealElementOptions: IOrginDealElementOptions[];
}

export interface IParamsDataType {
  nodeId?: string;
  nodeName?: string;
  nodeNameAlias?: string;
  provinceId?: string;
  provinceName?: string;
  rank?: number;
  stationList?: IStationListType[];
}

export type IDealElementDataObj = Record<number, IDealElementOptions[]>;

export enum INodeStationConfigPermissions {
  NODESTATIONCONFIGSAVEBUTTONWEB = 'NodeStationConfigSaveButtonWeb', // 保存配置
}

export enum IModalType {
  CONFIRM = 'confirm', // 只有确认按钮
  MODAL = 'modal', // 同时具有取消和确认按钮
  INFO = 'info', // 没有按钮
}
